//接口是对象的状态(属性)和行为(方法)的抽象(描述)
//接口 ：s
(()=>{
    //需求: 创建人的对象, 需要对人的属性进行一定的约束

    // id是number类型, 必须有, 只读的
    // name是string类型, 必须有
    // age是number类型, 必须有
    // sex是string类型, 可以没有

    //定义一个接口，改接口作为person对象的类型使用，限定或者是约束改对象中的属性数据
    interface IperSon{
        readonly id:number, //readonly 必须有, 只读的
        name:string,
        age:number,
        sex?:string     //属性后面添加 ? 可选属性
    }

    //定义一个对象，改对象的类型就是我定义的接口IPerson
    const person:IperSon={
        id:1,
        name:"小小浩",
        age:18,
        //sex 这个属性没有也是可以的    属性后面添加 ？ 要在接口里面interface 可有可无
        sex:"男"
    }

    console.log(person)
    // person.id = 100 //无法分配到 "id" ，因为它是只读属性。
    console.log(person)



})()